package maven.demo1;

public class App {
    public static void main(String[] args) {
        System.out.println("student 测试");

        // 1. 抽象类的使用
        Telphone tel1 = new CellPhone();
        tel1.call();
        tel1.message();
        Telphone tel2 = new SmartPhone();
        tel2.call();
        tel2.message();


        // 2. 接口的使用，和抽象类一样
        IPlayGame ip1 = new SmartPhone();
        ip1.playGame();
        IPlayGame ip2 = new PsP();
        ip2.playGame();

        // 3. 接口配合匿名内部类的方式
        IPlayGame ip3 = new IPlayGame() {
            @Override
            public void playGame() {
                System.out.println("使用匿名内部类的方式实现接口");
            }
        };

        ip3.playGame();


        // 4. 直接 new 接口后，调用其接口方法: 高级框架中经常使用
        new IPlayGame() {
            @Override
            public void playGame() {
                System.out.println("使用匿名内部类的方式实现接口2--PlayGames");
            }
        }.playGame();
    }
}
